iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 22
0

這個步調而言,今天就是Cloud Speech-to-Text API串接,前情提要一樣是要先建立project、Enable API、下載credential json之類的。忘了的人記得看第三天的文章。

好,現在要先來把test data抓下來,我們可以在google的github上找到很多檔案可以測試,我這邊抓的是audio.raw,並把它放到testdata/speech_to_text資料夾下。
file structure

萬事俱備就只欠東風,我們來看看demo code吧:

func DemoCode(filename string) {
  ctx := context.Background()

  // Creates a client.
  client, err := speech.NewClient(ctx)
  if err != nil {
    log.Fatalf("Failed to create client: %v", err)
  }

  // Reads the audio file into memory.
  data, err := ioutil.ReadFile(filename)
  if err != nil {
    log.Fatalf("Failed to read file: %v", err)
  }

  // Detects speech in the audio file.
  resp, err := client.Recognize(ctx, &speechpb.RecognizeRequest{
    Config: &speechpb.RecognitionConfig{
      Encoding:        speechpb.RecognitionConfig_LINEAR16,
      SampleRateHertz: 16000,
      LanguageCode:    "en-US",
    },
    Audio: &speechpb.RecognitionAudio{
      AudioSource: &speechpb.RecognitionAudio_Content{Content: data},
    },
  })
  if err != nil {
    log.Fatalf("failed to recognize: %v", err)
  }

  // Prints the results.
  for _, result := range resp.Results {
    for _, alt := range result.Alternatives {
      fmt.Printf("\"%v\" (confidence=%3f)\n", alt.Transcript, alt.Confidence)
    }
  }
}

main.go裡面則僅只是呼叫speech_to_text.DemoCode("./testdata/speech_to_text/audio.raw"),接到了音檔以後,output就會吐出text給你看。
output

OK,今天的文章就到這邊,謝謝大家的觀看。

今天的code可以看github:https://github.com/josephMG/ithelp-2019/tree/Day-22


上一篇
[Day 21] Google Cloud Speech-to-Text - 1
下一篇
[Day 23] Google Cloud Speech-to-Text - 子系列最終章
系列文
Overview of Machine Learning Products30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言